package com.ruoyi.project.remake.service;

import java.util.List;
import java.util.Map;

import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.project.remake.domain.TRemakeCaseDetails;
import com.ruoyi.project.remake.domain.dto.CaseDetailDto;
import com.ruoyi.project.remake.domain.query.PrintDetailsQuery;
import com.ruoyi.project.remake.domain.query.ReportQuery;
import com.ruoyi.project.remake.domain.vo.CaseFrontVo;
import com.ruoyi.project.remake.domain.vo.PrintDetailsVo;
import com.ruoyi.project.remake.domain.vo.RemarkPrintDetailsVo;
import com.ruoyi.project.remake.domain.vo.ReprotVo;

/**
 * 翻拍病例详情Service接口
 *
 * @author 孙山伟
 * @date 2020-12-15
 */
public interface ITRemakeCaseDetailsService
{
    /**
     * 查询翻拍病例详情
     *
     * @param id 翻拍病例详情ID
     * @return 翻拍病例详情
     */
    public TRemakeCaseDetails selectTRemakeCaseDetailsById(Long id);

    /**
     * 查询翻拍病例详情列表
     *
     * @param tRemakeCaseDetails 翻拍病例详情
     * @return 翻拍病例详情集合
     */
    public List<TRemakeCaseDetails> selectTRemakeCaseDetailsList(TRemakeCaseDetails tRemakeCaseDetails);

    /**
     * 新增翻拍病例详情
     *
     * @param tRemakeCaseDetails 翻拍病例详情
     * @return 结果
     */
    public TRemakeCaseDetails insertTRemakeCaseDetails(TRemakeCaseDetails tRemakeCaseDetails);

    /**
     * 修改翻拍病例详情
     *
     * @param tRemakeCaseDetails 翻拍病例详情
     * @return 结果
     */
    public int updateTRemakeCaseDetails(TRemakeCaseDetails tRemakeCaseDetails);

    /**
     * 批量删除翻拍病例详情
     *
     * @param ids 需要删除的翻拍病例详情ID
     * @return 结果
     */
    public int deleteTRemakeCaseDetailsByIds(Long[] ids);

    /**
     * 删除翻拍病例详情信息
     *
     * @param id 翻拍病例详情ID
     * @return 结果
     */
    public int deleteTRemakeCaseDetailsById(Long id);

    List<TRemakeCaseDetails> remakeDetails(Long id,String classType);

    void deleteByClassType(Long id, String classType);

    void InterphoneImg(TRemakeCaseDetails tRemakeCaseDetails);

    List<CaseFrontVo> selectByFront(CaseDetailDto caseDetailDto);

    AjaxResult tRemakeCaseDetails(CaseDetailDto caseDetailDto);

    void toPDF(Long id);

    List<TRemakeCaseDetails> remakeDetails(Long id, Object o, String ids);

    List<ReprotVo> selectReport(ReportQuery reportQuery);

    List<ReprotVo> selectReportDetails(ReportQuery reportQuery);

    Integer getMaxXh(TRemakeCaseDetails tRemakeCaseDetails);

    void saveBath(List<TRemakeCaseDetails> insertAll);

    List<PrintDetailsVo> selectCopyList(PrintDetailsQuery query);

    RemarkPrintDetailsVo loadIndexModel(Long caseMainId, List<PrintDetailsVo> printDetailsVoList);

    String printPDF(Long applyId);
}
